From 0b4d8433d49b596b2d7bb4a97c0b44cf412d3953 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Fri, 15 Jul 2011 17:24:01 +0100 Subject: [PATCH] =?utf8?q?Bug=20654266=20=E2=80=94=20No=20longer=20possibl?= =?utf8?q?e=20to=20set=20empty=20text=20on=20a=20GtkProgressBar?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change the semantics of GtkProgressBar:text slightly so that it behaves as it did before GTK+ 3. Closes: bgo#654266 --- gtk/gtkprogressbar.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c index a11f53c5cd..bbf5509c95 100644 --- a/gtk/gtkprogressbar.c +++ b/gtk/gtkprogressbar.c @@ -186,6 +186,10 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class) * the #GtkProgressBar::text property or, if that is %NULL, * the #GtkProgressBar::fraction value, as a percentage. * + * To make a progress bar that is styled and sized suitably for containing + * text (even if the actual text is blank), set #GtkProgressBar:show-text to + * %TRUE and #GtkProgressBar:text to the empty string (not %NULL). + * * Since: 3.0 */ g_object_class_install_property (gobject_class, @@ -1099,6 +1103,14 @@ gtk_progress_bar_pulse (GtkProgressBar *pbar) * @text: (allow-none): a UTF-8 string, or %NULL * * Causes the given @text to appear superimposed on the progress bar. + * + * If @text is %NULL and #GtkProgressBar:show-text is %TRUE, the current + * value of #GtkProgressBar:fraction will be displayed as a percentage. + * + * If @text is non-%NULL and #GtkProgressBar:show-text is %TRUE, the text will + * be displayed. In this case, it will not display the progress percentage. + * If @text is the empty string, the progress bar will still be styled and sized + * suitably for containing text, as long as #GtkProgressBar:show-text is %TRUE. **/ void gtk_progress_bar_set_text (GtkProgressBar *pbar, @@ -1110,8 +1122,12 @@ gtk_progress_bar_set_text (GtkProgressBar *pbar, priv = pbar->priv; + /* Don't notify again if nothing's changed. */ + if (g_strcmp0 (priv->text, text) == 0) + return; + g_free (priv->text); - priv->text = text && *text ? g_strdup (text) : NULL; + priv->text = g_strdup (text); gtk_widget_queue_resize (GTK_WIDGET (pbar)); @@ -1128,6 +1144,10 @@ gtk_progress_bar_set_text (GtkProgressBar *pbar, * the #GtkProgressBar::text property or, if that is %NULL, * the #GtkProgressBar::fraction value, as a percentage. * + * To make a progress bar that is styled and sized suitably for containing + * text (even if the actual text is blank), set #GtkProgressBar:show-text to + * %TRUE and #GtkProgressBar:text to the empty string (not %NULL). + * * Since: 3.0 */ void -- 2.30.2